In software development projects, when programmers are assigned a software bug to fix, they typically spend significant time during diagnosis searching for instances from the past where similar bugs have been debugged, analyzed and resolved. They often search through software bug databases, articles from the on-line developer networks, email threads, logs of debugging sessions, crash logs, event traces or other sources, and/or talk to colleagues to find this information. For example, the same software bug or a very similar bug may have been encountered and fixed in another code branch, and a programmer would greatly benefit from knowing this information.